home *** CD-ROM | disk | FTP | other *** search
- 'This program draws Imperial and Metric title blocks
- ' for standard sized paper.
- 'Program: AutoBorder
- 'Written by: Richard Kyle - Foretech Graphics
- 'Date: March 29th, 1996
- 'Revised: April 23rd, 1996
- 'Tested on: CorelCAD Release Candidate 2 - 1.00.107
- 'Internet: http://www.fore-tech.com
- 'E-Mail: rskyle@fore-tech.com or rkyle@msn
- '
- 'Description: This porgrams draws Imperial and Metric title blocks
- ' for standard sized paper. The 'DIALOG BOX DEFAULTS' can
- ' easily be customized for your own use.
-
-
- '**** DIALOG BOX DEFAULTS ****
- cmbPaper$="A"
- chkDrawPaper%=1
- chkBinding%=1
- chkGroup%=0
- txtScale$="1:1"
- txtCompany$="FORETECH GRAPHICS"
- txtDrawNumb$="1"
- txtDrawName$="DRAWING NAME"
- txtDrawnby$="RICHARD KYLE"
- txtCheckby$="NONE"
- txtXOffset$="0"
- txtYOffset$="0"
- txtDate$=CurrDate
- optOrientation%=0
-
- '**** DECLARATIONS ****
- DIM PSize(0 to 10) as string
- DIM Px(0 to 10) as single 'PAPER X SIZE
- DIM Py(0 to 10) as single 'PAPER Y SIZE
- DIM Bs(0 to 10) as single 'BOREDER SIZE
- DIM Bo(0 to 10) as single 'BINDING OFFSET
- DIM M(0 to 10) as single 'METRIC (1 = TRUE)
- DIM cmbPaper$
- DIM ButtonPressed%
- DIM cur%
- DIM Tx(0 to 1) as single
- DIM Ty(0 to 1) as single
- DIM L1(0 to 1) as single
- DIM L2(0 to 1) as single
- DIM L3(0 to 1) as single
- DIM SP(0 to 1) as single
- DIM tb(0 to 1) as single
- DIM nw(0 to 1) as single
- DIM fs(0 to 1) as single
-
- '**** PAPER and BORDER SIZE TABLE ****
- 'Imperial
- PSize(0)="A": Px(0)=11.00 :Py(0)= 8.50: Bs(0)=0.25 :Bo(0)= 1.0 : M(0)=0
- PSize(1)="B": Px(1)=17.00 :Py(1)=11.00: Bs(1)=0.25 :Bo(1)= 1.0 : M(1)=0
- PSize(2)="C": Px(2)=22.00 :Py(2)=17.00: Bs(2)=0.375 :Bo(2)= 1.0 : M(2)=0
- PSize(3)="D": Px(3)=34.00 :Py(3)=22.00: Bs(3)=0.5 :Bo(3)= 1.0 : M(3)=0
- PSize(4)="E": Px(4)=44.00 :Py(4)=34.00: Bs(4)=0.5 :Bo(4)= 1.0 : M(4)=0
-
- 'Metric
- PSize(5)="A4": Px(5)= 297 :Py(5)= 210 : Bs(5)= 10 :Bo(5)= 20 : M(5)=1
- PSize(6)="A3": Px(6)= 420 :Py(6)= 297 : Bs(6)= 10 :Bo(6)= 20 : M(6)=1
- PSize(7)="A2": Px(7)= 594 :Py(7)= 420 : Bs(7)= 10 :Bo(7)= 20 : M(7)=1
- PSize(8)="A1": Px(8)= 841 :Py(8)= 594 : Bs(8)= 10 :Bo(8)= 20 : M(8)=1
- PSize(9)="A0": Px(9)=1189 :Py(9)= 841 : Bs(9)= 10 :Bo(9)= 20 : M(9)=1
-
- for Cur=0 to 9
- PSize(Cur)=PSize(Cur) & " - " & Cstr(px(cur)) & " x " & Cstr(py(cur))
- next cur
-
- '**** TITLE BLOCK SIZES ****
- 'IMPERIAL :METRIC
- Tx(0)=5 :Tx(1)=150
- Ty(0)=1.5 :Ty(1)=45
- L1(0)=1.0 :L1(1)=30
- L2(0)=0.5 :L2(1)=15
- L3(0)=0.25 :L3(1)=7.5
- SP(0)=0.05 :SP(1)=1.5
- tb(0)=0.75 :tb(1)=20
- nw(0)=1 :nw(1)=30
- fs(0)=.15 :fs(1)=4.5
-
-
- '**** OTHER CONSTANTS ****
- nl=chr$(13) & chr$(10)
- about$=about$ & "Program: AutoBorder" & nl
- about$=about$ & "Written by: Richard Kyle - Foretech Graphics" & nl
- about$=about$ & "Date: March 29th, 1996" & nl
- about$=about$ & "Phone: (604) 983-8753" & nl
- about$=about$ & "Fax: (604) 983-8762" & nl
- about$=about$ & "Internet: http://www.fore-tech.com" & nl
- about$=about$ & "E-Mail: rskyle@fore-tech.com / rkyle@msn"
-
- '**** DEFINE DIALOG BOXES ****
- BEGIN DIALOG diaAbout 210, 100, "About AutoBorder"
- TEXT 15, 5, 200, 60, about$
- OKBUTTON 85, 75, 40, 14
- END DIALOG
-
- cur = 0
-
- BEGIN DIALOG diaBorder 200, 206, "AutoBorder by Foretech Graphics"
- DDLISTBOX 6, 16, 96, 102, PSize, Cur% 'This type of dialogue box eliminates the need for error traps of user input
- OPTIONGROUP optOrientation%
- OPTIONBUTTON 122, 10, 48, 8, "Landscape"
- OPTIONBUTTON 122, 20, 48, 8, "Portrait"
- TEXTBOX 5, 40, 60, 12, txtXOffset$
- TEXTBOX 70, 40, 60, 12, txtYOffset$
- CHECKBOX 5, 59, 54, 11, "Draw Paper", chkDrawPaper%
- CHECKBOX 70, 59, 54, 11, "Add Binding", chkBinding%
- CHECKBOX 135, 59, 54, 11, "Group All", chkGroup%
- TEXTBOX 5, 83, 190, 13, txtCompany$
- TEXTBOX 5, 108, 40, 14, txtDrawNumb$
- TEXTBOX 55, 108, 140, 14, txtDrawName$
- TEXTBOX 5, 132, 90, 14, txtScale$
- TEXTBOX 105, 132, 90, 13, txtDrawnBy$
- TEXTBOX 5, 159, 90, 13, txtDate$
- TEXTBOX 105, 159, 90, 13, txtCheckBy$
- PUSHBUTTON 5, 183, 60, 13, "About"
- CANCELBUTTON 70, 183, 60, 13
- OKBUTTON 135, 183, 60, 13
- TEXT 5, 6, 104, 8, "Paper Size"
- TEXT 5, 75, 82, 8, "Company Name:"
- TEXT 55, 100, 82, 8, "Drawing Name:"
- TEXT 5, 100, 34, 8, "Dwg. #:"
- TEXT 5, 124, 40, 8, "Scale:"
- TEXT 105, 124, 40, 8, "Drawn By:"
- TEXT 5, 151, 40, 8, "Date:"
- TEXT 105, 151, 60, 8, "Checked By:"
- TEXT 5, 32, 40, 8, "X Offset:"
- TEXT 70, 32, 40, 8, "Y Offset:"
- END DIALOG
-
- 'SHOW MAIN DIALOG
- ButtonPressed=dialog(diaBorder)
-
- 'IF THE USER CHOOSES ABOUT THEN REDISPLAY MAIN DIALOG
- while ButtonPressed=3
- ButtonPressed=dialog(diaabout)
- ButtonPressed=dialog(diaBorder)
- wend
-
- Select Case ButtonPressed
- case 1 'OK
-
-
- 'CHOOSE metric / IMPERIAL
- metric%=m(cur)
-
- 'SET PAPER OFFSET
- P1x=val(txtXOffset$)
- P1y=val(txtYOffset$)
-
- 'SET PAPER ORIENTATION
- if optOrientation% = 1 then
- P2x=P1x + Py(cur)
- P2y=P1y + Px(cur)
- else
- P2x=P1x + Px(cur)
- P2y=P1y + Py(cur)
- endif
-
-
- 'SET BORDER SIZES
- B1y=P1y+Bs(cur)
- B2y=P2y-Bs(cur)
- B2x=P2x-Bs(cur)
-
- 'ADD BINDING OFFSET
- if chkBinding% = 1 then
- B1x=P1x+Bo(cur)
- else
- B1x=P1x+Bs(cur)
- endif
-
- 'COL LOCATIONS
- co1=B2x-Tx(metric)
- co2=B2x-tx(metric)/2
- co3=B2x-Tx(metric)+Nw(metric)
- co4=B2x
-
- 'TEXT LOCATIONS
- tx1=co1+Tb(metric)
- tx2=co2+Tb(metric)
-
- 'ROW LOCATIONS
- rw0=B1y+Ty(metric)
- rw1=B1y+L1(metric)
- rw2=B1y+L2(metric)
- rw3=B1y+L3(metric)
- rw4=B1y
-
-
- 'CREATE LINK TO CORELCAD
- WITHOBJECT "CorelCAD.Automation.1"
-
- 'CREATE LAYER
- if chkGroup% = 0 then
- .NewLayer .LayerName="Paper", .Red=0, .Green=0, .Blue=0,.Printable=false, .LineStyle=1, .Description="Paper"
- .SetCurrentLayer .LayerName="Paper"
- endif
-
- 'DRAW PAPER
- if chkDrawPaper% = 1 then
- .StartAddCmdPoint 5
- .AddCmdPoint P1x, P1y, 0.0
- .AddCmdPoint P2x, P1y, 0.0
- .AddCmdPoint P2x, P2y, 0.0
- .AddCmdPoint P1x, P2y, 0.0
- .AddCmdPoint P1x, P1y, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
- end if
-
- 'CREATE LAYER
- if chkGroup% = 0 then
- .NewLayer .LayerName="Border", .Red=255, .Green=0, .Blue=0, .LineStyle=6, .Description="Border Layer"
- .SetCurrentLayer .LayerName="Border"
- endif
-
- 'DRAW BORDER
- .StartAddCmdPoint 5
- .AddCmdPoint B1x, B1y, 0.0
- .AddCmdPoint B2x, B1y, 0.0
- .AddCmdPoint B2x, B2y, 0.0
- .AddCmdPoint B1x, B2y, 0.0
- .AddCmdPoint B1x, B1y, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
-
- 'DRAW TITLE BLOCK
- .StartAddCmdPoint 3
- .AddCmdPoint B2x, rw0, 0.0
- .AddCmdPoint co1, rw0, 0.0
- .AddCmdPoint co1, rw4, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
- 'DRAW HORIZONTAL SEPERATORS
- .StartAddCmdPoint 2
- .AddCmdPoint co1, rw3, 0.0
- .AddCmdPoint co4, rw3, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
- .StartAddCmdPoint 2
- .AddCmdPoint co1, rw2, 0.0
- .AddCmdPoint co4, rw2, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
- .StartAddCmdPoint 2
- .AddCmdPoint co1, rw1, 0.0
- .AddCmdPoint co4, rw1, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
-
- 'DRAW VERTICAL SEPERATORS
- .StartAddCmdPoint 2
- .AddCmdPoint Co2, rw2, 0.0
- .AddCmdPoint Co2, rw3, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
- .StartAddCmdPoint 2
- .AddCmdPoint Co2, rw3, 0.0
- .AddCmdPoint Co2, rw4, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
- .StartAddCmdPoint 2
- .AddCmdPoint Co3, rw1, 0.0
- .AddCmdPoint Co3, rw2, 0.0
- .EndAddCmdPoint
- .PolyLine
- .ApplyName "Border"
-
- 'ADD TITLE BLOCK LABELS
- .Text3D .text="SCALE:", .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .x1=co1+sp(metric), .y1=rw3+sp(metric), .z1=0
- .ApplyName "Border"
- .Text3D .text="DN BY:", .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .x1=co2+sp(metric), .y1=rw3+sp(metric), .z1=0
- .ApplyName "Border"
- .Text3D .text="DATE:", .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .x1=co1+sp(metric), .Y1=rw4+sp(metric), .Z1=0
- .ApplyName "Border"
- .Text3D .text="CH BY:", .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .x1=co2+sp(metric), .Y1=rw4+sp(metric), .Z1=0
- .ApplyName "Border"
-
- 'CREATE LAYER
- if chkGroup% = 0 then
- .NewLayer .LayerName="Title", .Red=0, .Green=0, .Blue=0, .LineStyle=1, .Description="Title Block Text"
- .SetCurrentLayer .LayerName="Title"
- endif
-
- 'ADD TITLE BLOCK TEXT
- if txtCompany$<>"" then
- .Text3D .text=txtCompany$, .font="Arial", .size=FS(metric)*2, .Justification=1,.Style=0,.angle=0, .X1=co2, .Y1=rw1+sp(metric)*2, .Z1=0
- .ApplyName "Border"
- endif
-
- if txtDrawName$ <>"" then
- .Text3D .text=txtDrawName$, .font="Arial", .size=FS(metric)*2, .Justification=1,.Style=0,.angle=0, .X1=co2+(NW(metric)/2), .Y1=rw2+sp(metric)*2, .Z1=0
- .ApplyName "Border"
- endif
-
- if txtDrawNumb$<>"" then
- .Text3D .text=txtDrawNumb$, .font="Arial", .size=FS(metric)*2, .Justification=1,.Style=0,.angle=0, .X1=co1+(NW(metric)/2), .Y1=rw2+sp(metric)*2, .Z1=0
- .ApplyName "Border"
- endif
-
- if txtScale$<>"" then
- .Text3D .text=txtScale$, .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .X1=tx1+sp(metric), .Y1=rw3+sp(metric), .Z1=0
- .ApplyName "Border"
- endif
-
- if txtDrawnBy$<>"" then
- .Text3D .text=txtDrawnBy$, .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .X1=tx2+sp(metric), .Y1=rw3+sp(metric), .Z1=0
- .ApplyName "Border"
- endif
-
- if txtDate$<>"" then
- .Text3D .text=txtDate$, .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .X1=tx1+sp(metric), .Y1=rw4+sp(metric), .Z1=0
- .ApplyName "Border"
- endif
-
- if txtCheckBy$<>"" then
- .Text3D .text=txtCheckBy$, .font="Arial", .size=FS(metric), .Justification=0,.Style=0,.angle=0, .X1=tx2+sp(metric), .Y1=rw4+sp(metric), .Z1=0
- .ApplyName "Border"
- endif
-
- 'GROUP ALL OBJECTS TOGETHER
- if chkGroup% = 1 then
- .selectobject "Border"
- .group
- endif
-
- .ZoomToAll
- 'CLOSE LINK WITH CORELCAD
- end WithObject
-
- case 2 'CANCEL BUTTON
- 'NOTHING MORE TO DO
- end select
-
-